// ActionTraceDlg.h : header file
//

#pragma once
#include "afxwin.h"
//#include "../Hook/Hook.h"
extern TCHAR g_szPropName[];
extern HANDLE g_hPropValue;

// CActionTraceDlg dialog
class CActionTraceDlg : public CDialog
{
// Construction
public:
	CActionTraceDlg(CWnd* pParent = NULL);	// standard constructor
	typedef BOOL (*InstallHook)(HWND hWnd);
	typedef BOOL (*UninstallHook)();
	typedef void (*SetConf)(PHookConf pConf);

// Dialog Data
	enum { IDD = IDD_ACTIONTRACE_DIALOG };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	BOOL OnCommand(WPARAM wParam, LPARAM lParam);

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg LRESULT OnMouseHook(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnKeyboardHook(WPARAM wParam, LPARAM lParam);
	afx_msg void OnBnClickedTrace();
	afx_msg LRESULT OnTrayNotification(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
public:
	CButton m_bnTrace;
private:
	bool m_bTracing;
	HMODULE m_hLib;
	HookConf m_sHookConf;
public:
//	afx_msg void OnBnClickedTrackMouse();
	afx_msg void OnBnClickedDisplayRealTime();
	afx_msg void OnBnClickedTrackMouseMove();
private:
	HDC m_hdc;
public:
	afx_msg void OnClose();
	afx_msg void OnBnClickedKeyupOnly();
private:
	bool m_bMinOnTray;
	NOTIFYICONDATA m_sNotifyData;
public:
	afx_msg void OnDestroy();
	afx_msg void OnBnClickedAnalyze();
private:
	CStatic m_staticVersion;
public:
	afx_msg void OnBnClickedToTray();
};
